package Day14;

/**
 * 实现线程的第一种方法
 * 编写一个类 直接继承 Thread 重写 run 方法
 * 创建线程创建出来 。 new就行了
 * 怎么启动线程呢     调用线程我们使用start方法
 *
 *
 * 亘古不变的道理
 *
 * 方法体中的代码永远都是自上而下的顺序依次逐步执行的。
 *
 */
public class Test02 {

    //这里main方法 这里的代码属于主线程。 在主栈运行
    public static void main(String[] args) {


        //创建了一个分支线程的对象
        MyTheard t = new MyTheard();

        //t.run();
        /**
         * 启动线程
         *
         * start()方法作用。 启动一个分支线程， 在jvm 中开辟一个新的栈空间，这个代码执行完毕后就瞬间结束
         * 这段代码的任务只是为了开一个新的栈空间。只要吧栈空间开辟出来。 start方法就结束了。线程就启动成功了。 启动成功的线程会自动调用
         * run方法。 并且run方法就是在分支栈的栈底部（压栈）
         *
         * run方法在分支栈的栈底部， main方法 在主栈栈底部 。 run  和  mian  是平级
         *
         */
        t.start();

        for (int i = 0; i <100; i++) {
            System.out.println("我是主线程------>" + i);
        }


    }

}

class MyTheard extends Thread{

    @Override
    public void run() {
        int a = 10;
        for (int i = 0; i < 100; i++) {
            System.out.println("我是分支线程-------->" + i);
        }
    }
}

